package com.example.spider.task.limit;

/**
 * 限流算法采用固定间隔+随机时间，限流范围可配置
 * global                  保护服务器，不在此体现
 * customerKey             自定义，
 * domain#proxyIp:port     反反爬（反 ip 限流）
 * domain#proxyIp:port#sessionId    再加入session/cookie等因素，反严格反爬（反 ip 限流 + 用户行为等）
 *
 * @author lym
 */
public enum LimitScope {

    /**
     * 全局任务限流。用于保护运行服务器，限制服务器水位，忽略传入的 key
     */
    //GLOBAL,

    /**
     * 按照域名进行限流，并根据代理细化限流。反反爬    realKey = domain#proxyIp:port#
     */
    DOMAIN_WITH_PROXY,

    /**
     * 按照会话限流。反反爬，key 拼接 SESSION-ID
     */
    SESSION,

    /**
     * 定制 key，更高级的
     */
    CUSTOMER,

    ;

}
